<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 要求1：找到出现最多的数字和出现的次数
        const str = '85872637471533203552943982'
        const arr = str.split('')
        function count(arr) {
            // maxName用于存储出现次数最多的元素
            let maxName = 0
            // maxNum 用于存储最多次数
            let maxNum = 0
            // 声明一个对象保存每个数的个数
            let temp = {}
            arr.forEach(item => {
                // 如果这个数没出现过
                if (!temp[item]) {
                    // 次数赋1
                    temp[item] = 1
                }
                else {
                    // 次数++
                    temp[item]++
                }
            });
            console.log(temp);
            // 遍历对象
            for (let i in temp) {
                // 如果对象数据中的数据大于maxNum
                if (temp[i] > maxNum) {
                    maxNum = temp[i]
                    maxName = i
                }
            }

            return `出现次数最多的元素为:${maxName} ,出现次数为${maxNum}`
        }

        console.log(count(arr));

        // 2.去除字符串中重复的数字
        // 使用Array.from()转换为数组
        const newArr = Array.from(new Set(arr))



        // 3.对去重后的字符串重新排序
        //外层循环，控制趟数，每一次找到一个最大值（几个数据就走几-1趟，及arr.length-1）
        for (let i = 0; i < newArr.length - 1; i++) {
            // 层for循环处理一趟交换的次数，并且判断两个数的大小 
            for (let j = 0; j < arr.length - 1 - i; j++) {
                if (newArr[j] > newArr[j + 1]) {
                    let temp = newArr[j]
                    newArr[j] = newArr[j + 1]
                    newArr[j + 1] = temp
                }
            }


        }

        console.log(newArr);
    </script>
</body>

</html>